package ws.very.util.lang

trait ShortType {
  type Str = String
  type B = Boolean
  type S = String
  type I = Int
  type L = Long
  type D = Double
  type F = Float
  type A = Any
  type U = Unit
  type N = Number
  @deprecated
  type E[+A, +B] = Either[A, B]
  type |[+A, +B] = Either[A, B]
  @deprecated("二义化 也可能是元组")
  type ->[A, +B] = Map[A, B]

  /*O的起源来自于希望它是“容器”的表达 但现在只是option*/
  val O = Option
  
  type O[+T] = Option[T]
  type PFn[-A, +B] = PartialFunction[A, B]
  type Pfn[-A, +B] = PartialFunction[A, B]
  val Pfn = PartialFunction
  


}


//("只合适不可变")
trait ShortType2 {
	
  val Itb = Iterable
  type Itb[+T] = Iterable[T]

}


object ShortTypes extends ShortType with ShortType2